/*
 * @Author      : ZhouQiJun
 * @Date        : 2025-11-06 12:54:42
 * @LastEditors : ZhouQiJun
 * @LastEditTime: 2025-11-07 17:44:09
 * @Description :
 */
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import federation from '@originjs/vite-plugin-federation'
import { dirname, resolve } from 'node:path'
import { fileURLToPath } from 'node:url'

const __dirname = dirname(fileURLToPath(import.meta.url))

export default defineConfig({
  plugins: [
    vue()
    //federation({
    //  name: 'remote-app',
    //  filename: 'remoteEntry.js',
    //  exposes: {
    //    './RemoteButton': './src/RemoteButton.vue'
    //  },
    //  shared: {
    //    vue: {
    //      singleton: true
    //      //requiredVersion: '^3.2.0'
    //    },
    //    pinia: {
    //      singleton: true
    //    }
    //  }
    //})
  ],
  build: {
    lib: {
      entry: resolve(__dirname, 'src/remote-app/remote-app.js'),
      name: 'remoteApp',
      // 将添加适当的扩展名后缀
      fileName: 'remote-app'
    },
    rollupOptions: {
      // 确保外部化处理那些
      // 你不想打包进库的依赖
      external: ['vue'],
      output: {
        // 在 UMD 构建模式下为这些外部化的依赖
        // 提供一个全局变量
        globals: {
          vue: 'Vue'
        }
      }
    }
    // 在 build 中新增这个配置，以支持 top-level await
    //target: ['chrome89', 'edge89', 'firefox89', 'safari15']
  },
  server: {
    port: 5001
  },
  preview: {
    port: 5002
  }
})
